#ifndef __BROAD_HPP__
#define __BROAD_HPP__
#include "winux.hpp"

#include "safe_vector.hpp"
#include "message/message.hpp"

class User;
class Broad {
public:
    // SafeVector<User*> userList;
    std::vector<User*> userList;

    virtual void addUser( User* user );
    virtual bool hasUser( uint uid );
    virtual User* getUser( uint uid );
    virtual void delUser( uint uid );
    virtual void clearUser();
    virtual void broadcast( Message* msg, uint exceptUid = -1 );

    virtual winux::Mixed getInfo()=0;

    virtual ~Broad();
};

#endif  //__BROAD_HPP__
